const express = require("express");
const app = express();
const session = require("express-session");

app.use(session({
    secret :  'secret', // 对session id 相关的cookie 进行签名
    resave : true,
    saveUninitialized: false, // 是否保存未初始化的会话
    cookie : {
        maxAge : 1000 * 60 * 10, // 设置 session 的有效时间，单位毫秒
    },
}));
app.get("/", (req, res) => {
    // console.log(req.session);
    if (!req.session['view']) {
        req.session['view'] = 1;
    } else {
        req.session['view']++;
    }
    req.session['amount'] = 999999;
    res.send(`欢迎你第${req.session["view"]}次登陆,你的余额是:${req.session['amount']}`)
})
app.listen(3000)

const cookieParser = require('cookie-parser');

app.use(cookieParser());

app.get("/a", (req, res) => {
    console.log(req.cookies) //读取cookie

    res.cookie("amount", 99.8, { //设置cookie
        //domain:设置主域名//（子域名可以找主域名，主域名不可以找子域名；一般情况下一个网站一个cookie）
        //path："/" //cookie是保存在根路径下的，为了防止访问不到  （不能往下访问只能往上访问）
        //secure： 当 secure 值为 true 时， 在 HTTPS 中才有效； 反之， cookie 在 HTTP 中是有效。
        //httpOnly：浏览器不允许脚本操作 document.cookie 去更改 cookie。设置为true可以避免被 xss 攻击拿到 cookie
        maxAge: 14 * 86400 * 1000 //有效期
    })

    res.send("ok")
})

简单模拟登录
const cookieParser = require('cookie-parser');

app.use(cookieParser(
    "ggffdaasadada123ghgfhf8gghgh" //签名
));

app.get("/a", (req, res) => {
    let num = 0;
    console.log(req.cookies) //读取未签名cookie
    console.log(req.signedCookies) //读取签名cookie
    if (req.cookies.amount) {
        res.send("欢迎回来")
    } else {
        res.cookie("amount", "hello", {
            maxAge: 14 * 66666 * 1000, //有效期
            signed: true //是否需要签名的
        })
    }
    res.send("请先登录")
})

const express = require('express');
const cookieSession = require('cookie-session');

const apps = express();
apps.use(cookieSession({
  name: 'session',
  keys: ['key1', 'key2'],
  maxAge: 24 * 60 * 60 * 1000 // 24小时
}));
